package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.SelectVo;
import com.zb.entity.ZjFactory;
import com.zb.vo.FactoryDetailVo;
import com.zb.vo.FactoryListSelectVo;
import com.zb.vo.FactoryVo;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 厂商表 服务类
 * </p>
 *
 * @author WEN
 * @since 2024-02-27
 */
public interface ZjFactoryService extends IService<ZjFactory> {

    /**
     * 新增或修改品牌商家
     * @param custAccId 商家ID
     * @param factoryVo
     */
    void save(Long custAccId, FactoryVo factoryVo);

    /**
     * 获取品牌商家列表
     * @param custAccId 商家ID
     * @param selectVo 搜索对象
     * @return
     */
    List<ZjFactory> getList(Long custAccId, FactoryListSelectVo selectVo);

    /**
     * 获取品牌商家列表总记录数
     * @param custAccId 商家ID
     * @param selectVo 搜索对象
     * @return
     */
    long getListCount(Long custAccId, FactoryListSelectVo selectVo);

    /**
     * 获取修改品牌商家前的数据查询
     * @param id 品牌商家ID
     * @return
     */
    FactoryVo getBeforeUpdateSelect(Long id);

    /**
     * 审核品牌商家
     * @param factoryId 品牌商家ID
     * @param checkType 审核类型：1-审核通过，2-审核驳回
     */
    void checkFactory(Long factoryId, Integer checkType);

    /**
     * 获取品牌商家下拉数据
     * @param custAccId 平台ID
     * @param selectVo 商家名称搜索条件
     * @return
     */
    Map<String, Object> getFactorySelectPage(Long custAccId, SelectVo selectVo);

    /**
     * 根据品牌商家ID获取品牌商家名称
     * @param factoryIds 品牌商家ID
     * @return
     */
    List<ZjFactory> getNameByIds(List<Long> factoryIds);

    /**
     * 根据品牌商家ID获取单号标识
     * @param id 品牌商家ID
     * @return
     */
    String getOrderIdentifierNoById(Long id);
}
